package model

const (
	PlatformInternal      = 0 // 内网登录
	PlatformTap           = 1 // tap登录
	PlatformBiliBili      = 2 // bilibiliGames
	Platform4399          = 3 // 4399
	PlatformHaoYouKuaiBao = 4 // 好游快爆
)

// TapAccountRsp tap第三方sdk账号信息响应
type TapAccountRsp struct {
	Data struct {
		Code    int32  `json:"code"`
		Name    string `json:"name"`
		Avatar  string `json:"avatar"`
		OpenId  string `json:"openid"`
		UnionId string `json:"unionid"`
	} `json:"data"`
}

type RankReq struct {
	Uid int32 `json:"uid"`
}

// AccountSdkLoginReq sdk登录请求
type AccountSdkLoginReq struct {
	Platform int32  `json:"platform"`
	JsonData string `json:"jsonData"`
}

// InternalLogin 内网登录客户端数据
type InternalLogin struct {
	UserName string `json:"username"`
	Token    string `json:"token,omitempty"`
}

// TapLogin tap登录客户端数据
type TapLogin struct {
	AccessToken string `json:"kid"`
	MacKey      string `json:"mac_key"`
}

// BiliLogin bilibili登录客户端数据
type BiliLogin struct {
	AccessToken string `json:"access_key"`
	Uid         string `json:"uid"`
}

type Login4399 struct {
	State    string `json:"state"`
	Uid      string `json:"uid"`
	NickName string `json:"nickname,omitempty"`
}

type LoginHYKB struct {
	AccessToken string `json:"access_token"`
	Uid         int    `json:"uid"`
	NickName    string `json:"nickname,omitempty"`
}

type AccountRspHYKB struct {
	Code int32 `json:"code"`
}

type AccountRsp4399 struct {
	Code   string `json:"code"`
	Result struct {
		Uid        string `json:"uid,omitempty"`
		IsRealName bool   `json:"isRealName,omitempty"`
		IsAdult    bool   `json:"isAdult,omitempty"`
	} `json:"result,omitempty"`
	Message string `json:"message"`
}

// BiliAccountRsp Bili第三方sdk账号信息响应
type BiliAccountRsp struct {
	RequestId string `json:"requestId"`
	Timestamp int64  `json:"timestamp"`
	Code      int    `json:"code"`
	Message   string `json:"message,omitempty"`
	OpenId    string `json:"open_id,omitempty"`
	Uname     string `json:"uname,omitempty"`
}

// AccountSdkLoginRsp sdk登录响应
type AccountSdkLoginRsp struct {
	Uid        int32     `json:"uid"`
	UserName   string    `json:"username"`
	PassWord   string    `json:"password"`
	Token      string    `json:"token"`
	RegionList []*Region `json:"region_list"` // 区服列表
}

// AccountTokenVerifyReq 令牌验证请求
type AccountTokenVerifyReq struct {
	Uid   int32  `json:"uid"`
	Token string `json:"token"`
}

// AccountTokenVerifyRsp 令牌验证响应
type AccountTokenVerifyRsp struct {
	Valid bool `json:"valid"`
}
